import { defineStore } from "pinia";
import router from "@/router/index";
import { staticRoutes } from "@/router/route";
// import { getRoutersAPI } from "@/api/modules/system/index";
import { moduleReplacement, linearArray } from "@/router/route-output";
import { getUrlWithParams } from "@/utils/index";

/**
 * 路由列表
 * @method setTabsTitle 设置tabs标签页名称
 * @methods setRoutePaths 设置路由名称集合
 * @methods setTabs 添加tabs标签页
 * @methods setCurrentRoute 设置系统内的当前路由
 * @methods removeTabsList 删除tabs页的指定路由
 * @methods removeRouteName 删除缓存路由名，用于取消页面缓存，单个删除
 * @methods removeRoutePaths 删除缓存路由名，用于取消页面缓存，批量删除
 * @methods resetRoute 重置动态添加的路由
 * @methods initSetRouter 路由初始化
 */
export const routesConfigStore = () => {
  const routeTree = ref<any>([]); // 有访问权限的路由树
  const routeList = ref<any>([]); // 有访问权限的一维路由数组
  const cacheRoutes = ref<string[]>([]); // 所有可缓存路由的路由路径
  const tabsList = ref<Menu.MenuOptions[]>([]); // 标签页数据
  const currentRoute = ref<Menu.MenuOptions | object>({}); // 当前路由

  /**
   * 设置tabs名称
   * @param {string} title 路由名称
   */
  function setTabsTitle(title: string) {
    for (let i = 0; i < tabsList.value.length; i++) {
      if (tabsList.value[i].path == getUrlWithParams()) {
        tabsList.value[i].meta.title = title;
        break;
      }
    }
  }

  /**
   * 设置可缓存路由的路径 -> fullPath
   * 同路由不同参兼容，会开启多个标签页，fullPath可做标识
   * @param {string} path 路由fullPath
   */
  function setRoutePaths(path: string) {
    let state = cacheRoutes.value.some((item: string) => item === path);
    if (state) return;
    cacheRoutes.value.push(path);
  }

  /**
   * 添加tabs标签页
   * @param {object} route 当前tabs路由
   */
  function setTabs(route: Menu.MenuOptions) {
    // 顶层手动添加的全屏静态路由不参与tabs
    if (staticRoutes.some(item => item.path == route.path)) return;
    // 当前路由在tags中是否存在
    let index = tabsList.value.findIndex((item: Menu.MenuOptions) => item.path === route.path);
    // 不存在，直接缓存
    if (index == -1) return tabsList.value.push(route);
  }
  /**
   * 设置系统内的当前路由数据
   * @param {object} data 当前路由
   */
  function setCurrentRoute(data: Menu.MenuOptions) {
    // 名称一样不代表参数相同，这不用做已存在匹配，直接存储当前路由
    currentRoute.value = data;
  }
  /**
   * 删除tabs页的指定路由
   * @param {string} path 路由fullPath
   */
  function removeTabsList(path: string) {
    const index = tabsList.value.findIndex((item: Menu.MenuOptions) => item.path === path);
    if (tabsList.value[index].meta.affix) return;
    if (index === -1) return;
    tabsList.value.splice(index, 1);
  }
  /**
   * 删除缓存路由，用于取消页面缓存，单个删除
   * @param {string} path 路由
   */
  function removeRouteName(path: string) {
    const index = cacheRoutes.value.findIndex((item: string) => item === path);
    if (index === -1) return;
    cacheRoutes.value.splice(index, 1);
  }
  /**
   * 删除缓存路由，用于取消页面缓存，批量删除
   * @param {Array} list 路由
   */
  function removeRoutePaths(list: Array<string>) {
    cacheRoutes.value = cacheRoutes.value.filter((item: string) => !list.includes(item));
  }
  /**
   * 重置动态添加的路由
   */
  async function resetRoute() {
    // 清除标签页数据
    tabsList.value = [];
    // 清除动态添加的路由
    routeList.value.forEach((item: any) => {
      if (router.hasRoute(item.name)) router.removeRoute(item.name);
    });
  }

  /**
   * 路由初始化
   * 1、获取过滤角色权限后排过序的的路由树，后端处理
   * 2、获取路由树转换的一维路由
   * 3、将模块设置为真实模块
   * 4、动态添加路由
   * 5、存储路由树，用于生成菜单
   * 6、缓存一维路由
   */
  async function initSetRouter() {
    let routesArrData = [
      {
        "id": "01",
        "parentId": "0",
        "path": "/home",
        "name": "home",
        "component": "home/home",
        "meta": {
          "title": "home",
          "hide": false,
          "disable": false,
          "keepAlive": false,
          "affix": true,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin",
            "common"
          ],
          "svgIcon": "home",
          "bg": "/icons/wel.png",
          "icon": "",
          "sort": 1,
          "type": 2
        },
        "children": null
      },

      //=====================环长制===============
      {
        "id": "03",
        "parentId": "0",
        "path": "/ringChief",
        "name": "ringChief",
        "redirect": "/ringChief/ringChiefbufe",
        "meta": {
          "title": "环长制",
          "hide": false,
          "disable": false,
          "keepAlive": false,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "table",
          "bg": "/icons/HJYQGL.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "0301",
            "parentId": "03",
            "path": "/ringChief/ringChiefbufe",
            "name": "ringChiefbufe",
            "component": "ringChief/ringChiefbufe/index",
            "meta": {
              "title": "片区环长",
              "hide": false,
              "disable": false,
              "keepAlive": false,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          {
            "id": "0302",
            "parentId": "03",
            "path": "/ringChief/ringChiefmin",
            "name": "ringChiefmin",
            "component": "ringChief/ringChiefmin/index",
            "meta": {
              "title": "民间志愿环长",
              "hide": false,
              "disable": false,
              "keepAlive": false,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
          {
            "id": "0303",
            "parentId": "03",
            "path": "/ringChief/ringChiefyin",
            "name": "ringChiefyin",
            "component": "ringChief/ringChiefyin/index",
            "meta": {
              "title": "环长制问题库",
              "hide": false,
              "disable": false,
              "keepAlive": false,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
        ]
      },

      //=========================污染源==============
      {
        "id": "05",
        "parentId": "0",
        "path": "/multilevel",
        "name": "multilevel",
        "redirect": "/multilevel/second-3",
        "meta": {
          "title": "污染源",
          "hide": false,
          "disable": false,
          "keepAlive": false,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "switch",
          "bg": "/icons/wury.png",
          "sort": 5,
          "type": 1
        },
        "children": [

          {
            "id": "0501",
            "parentId": "05",
            "path": "/multilevel/second-3",
            "name": "second-3",
            "redirect": "/multilevel/third-1",
            "meta": {
              "title": "固定污染源",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 1
            },
            "children": [
              {
                "id": "050102",
                "parentId": "0501",
                "path": "/multilevel/third-1",
                "name": "third-1",
                "component": "multilevel/third/third-1",
                "meta": {
                  "title": "环评审批",
                  "hide": false,
                  "disable": false,
                  "keepAlive": true,
                  "affix": false,
                  "link": "",
                  "iframe": false,
                  "isFull": false,
                  "roles": [
                    "admin"
                  ],
                  "icon": "icon-menu",
                  "sort": 1,
                  "type": 2
                },
                "children": null
              },
              {
                "id": "050201",
                "parentId": "0502",
                "path": "/multilevel/third-2",
                "name": "third-2",
                "component": "multilevel/third/third-2",
                "meta": {
                  "title": "排污许可",
                  "hide": false,
                  "disable": false,
                  "keepAlive": true,
                  "affix": false,
                  "link": "",
                  "iframe": false,
                  "isFull": false,
                  "roles": [
                    "admin"
                  ],
                  "icon": "icon-menu",
                  "sort": 2,
                  "type": 2
                },
                "children": null
              },
              {
                "id": "050203",
                "parentId": "0502",
                "path": "/multilevel/third-3",
                "name": "third-3",
                "component": "multilevel/third/third-3",
                "meta": {
                  "title": "自行监测报告",
                  "link": "",
                  "hide": false,
                  "keepAlive": true,
                  "affix": false,
                  "iframe": false,
                  "isFull": false,
                  "roles": [
                    "admin"
                  ],
                  "icon": "icon-menu",
                  "sort": 3,
                  "type": 2
                },
                "children": null
              },

              {
                "id": "050204",
                "parentId": "0502",
                "path": "/multilevel/third-4",
                "name": "third-4",
                "component": "multilevel/third/third-4",
                "meta": {
                  "title": "固废转移",
                  "link": "",
                  "hide": false,
                  "keepAlive": true,
                  "affix": false,
                  "iframe": false,
                  "isFull": false,
                  "roles": [
                    "admin"
                  ],
                  "icon": "icon-menu",
                  "sort": 3,
                  "type": 2
                },
                "children": null
              },


            ],
          },
          {
            "id": "0503",
            "parentId": "05",
            "path": "/wuryuan/pwk",
            "name": "pwk",
            "component": "wuryuan/pwk/index",
            "meta": {
              "title": "排污口",
              "hide": false,
              "disable": false,
              "keepAlive": false,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
          {
            "id": "0504",
            "parentId": "05",
            "path": "/wuryuan/nwss",
            "name": "nwss",
            "component": "wuryuan/nwss/index",
            "meta": {
              "title": "农污设施",
              "hide": false,
              "disable": false,
              "keepAlive": false,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
        ]
      },

      //========================信访投诉================
      {
        "id": "06",
        "parentId": "0",
        "path": "/xfts",
        "name": "xfts",
        "component": "xfts/index",
        "meta": {
          "title": "信访投诉",
          "hide": false,
          "disable": false,
          "keepAlive": false,
          "affix": true,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin",
            "common"
          ],
          "svgIcon": "classify",
          "bg": "/icons/xf2.png",
          "icon": "",
          "sort": 1,
          "type": 2
        },
        "children": null
      },

      //==============================环境监测==================

      {
        "id": "07",
        "parentId": "0",
        "path": "/huanj",
        "name": "huanj",
        "redirect": "/huanj/huanjonline",
        "meta": {
          "title": "环境监测",
          "hide": false,
          "disable": false,
          "keepAlive": true,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "classify",
          "bg": "/icons/hjjc.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "0701",
            "parentId": "07",
            "path": "/huanj/huanjonline",
            "name": "huanjonline",
            "component": "huanj/huanjonline/index",
            "meta": {
              "title": "生态环境预警监测",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          {
            "id": "0302",
            "parentId": "03",
            "path": "/huanj/auto",
            "name": "huanj",
            "component": "huanj/auto/index",
            "meta": {
              "title": "固定污染源在线监测",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
          {
            "id": "0702",
            "parentId": "07",
            "path": "/huanj/manualMonitoring",
            "name": "manualMonitoring",
            "component": "huanj/manualMonitoring/index",
            "meta": {
              "title": "固定源手工监测",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 1,
              "type": 2
            },
            "children": null
          },
        ]
      },
      //=======================智能监控=====================


      {
        "id": "08",
        "parentId": "0",
        "path": "/jiank",
        "name": "jiank",
        "redirect": "/jiank/sst",
        "meta": {
          "title": "智能监控",
          "hide": false,
          "disable": false,
          "keepAlive": true,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "classify",
          "bg": "/icons/jiank2.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "0801",
            "parentId": "08",
            "path": "/jiank/sst",
            "name": "sst",
            "component": "jiank/sst/index",
            "meta": {
              "title": "摄像头",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          {
            "id": "0802",
            "parentId": "08",
            "path": "/jiank/wrj",
            "name": "jiank",
            "component": "jiank/wrj/index",
            "meta": {
              "title": "无人机",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
        ]
      },


      //======================自查自纠====================

      {
        "id": "09",
        "parentId": "0",
        "path": "/ziczij",
        "name": "ziczij",
        "component": "ziczij/index",
        "meta": {
          "title": "自查自纠",
          "hide": false,
          "disable": false,
          "keepAlive": false,
          "affix": true,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin",
            "common"
          ],
          "svgIcon": "classify",
          "bg": "/icons/ziczijiu.png",
          "icon": "",
          "sort": 1,
          "type": 2
        },
        "children": null
      },


      //=========================美丽崇明==============
      {
        "id": "10",
        "parentId": "0",
        "path": "/meili",
        "name": "meili",
        "redirect": "/meili/jsxm",
        "meta": {
          "title": "生态建设",
          "hide": false,
          "disable": false,
          "keepAlive": true,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "classify",
          "bg": "/icons/natureProtectArea.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "1001",
            "parentId": "10",
            "path": "/meili/jsxm",
            "name": "jsxm",
            "component": "meili/jsxm/index",
            "meta": {
              "title": "建设项目",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          {
            "id": "1002",
            "parentId": "10",
            "path": "/meili/xc",
            "name": "xc",
            "component": "meili/xc/index",
            "meta": {
              "title": "美丽乡村",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },

          {
            "id": "1003",
            "parentId": "10",
            "path": "/meili/hw",
            "name": "hw",
            "component": "meili/hw/index",
            "meta": {
              "title": "美丽海湾",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },

          {
            "id": "1004",
            "parentId": "10",
            "path": "/meili/hh",
            "name": "hh",
            "component": "meili/hh/index",
            "meta": {
              "title": "美丽河湖",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
        ]
      },

      //=======================生物多样性==========

      {
        "id": "11",
        "parentId": "0",
        "path": "/swtype",
        "name": "swtype",
        "redirect": "/swtype/diaoc",
        "meta": {
          "title": "生物多样性",
          "hide": false,
          "disable": false,
          "keepAlive": true,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "classify",
          "bg": "/icons/shnegwu.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "1101",
            "parentId": "11",
            "path": "/swtype/diaoc",
            "name": "diaoc",
            "component": "swtype/diaoc/index",
            "meta": {
              "title": "调查结果",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          {
            "id": "1102",
            "parentId": "11",
            "path": "/swtype/yc",
            "name": "yc",
            "component": "swtype/yc/index",
            "meta": {
              "title": "遗传资源",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
        ]
      },


      //========================法律法规============

      {
        "id": "12",
        "parentId": "0",
        "path": "/falfg",
        "name": "falfg",
        "redirect": "/falfg/view",
        "meta": {
          "title": "法律法规",
          "hide": false,
          "disable": false,
          "keepAlive": true,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "classify",
          "bg": "/icons/flfg.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "1201",
            "parentId": "12",
            "path": "/falfg/view",
            "name": "view",
            "component": "falfg/view/index",
            "meta": {
              "title": "执法工具箱",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          // {
          //   "id": "1202",
          //   "parentId": "12",
          //   "path": "/falfg/zcjd",
          //   "name": "falfg",
          //   "component": "falfg/zcjd/index",
          //   "meta": {
          //     "title": "政策解读",
          //     "hide": false,
          //     "disable": false,
          //     "keepAlive": true,
          //     "affix": false,
          //     "link": "",
          //     "iframe": false,
          //     "isFull": false,
          //     "roles": [
          //       "admin"
          //     ],
          //     "icon": "icon-menu",
          //     "sort": 2,
          //     "type": 2
          //   },
          //   "children": null
          // },
          {
            "id": "1203",
            "parentId": "12",
            "path": "/falfg/weifa",
            "name": "weifa",
            "component": "falfg/weifa/index",
            "meta": {
              "title": "崇明案例",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
          {
            "id": "1204",
            "parentId": "12",
            "path": "/falfg/ecologicalDamageComp",
            "name": "ecologicalDamageComp",
            "component": "falfg/ecologicalDamageComp/index",
            "meta": {
              "title": "生态损害赔偿",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
        ]
      },

      //===================风险防控================
      {
        "id": "13",
        "parentId": "0",
        "path": "/fen",
        "name": "fen",
        "redirect": "/fen/rzha",
        "meta": {
          "title": "风险防控",
          "hide": false,
          "disable": false,
          "keepAlive": true,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "classify",
          "bg": "/icons/fen.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "1301",
            "parentId": "13",
            "path": "/fen/rzha",
            "name": "rzha",
            "component": "fen/rzha/index",
            "meta": {
              "title": "入崇渣土",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          {
            "id": "1302",
            "parentId": "13",
            "path": "/fen/cd",
            "name": "fen",
            "component": "fen/cd/index",
            "meta": {
              "title": "场地调查",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },

        ]
      },
      //===============无废城市==========

      {
        "id": "14",
        "parentId": "0",
        "path": "/city",
        "name": "city",
        "redirect": "/city/wf",
        "meta": {
          "title": "无废城市",
          "hide": false,
          "disable": false,
          "keepAlive": true,
          "affix": false,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin"
          ],
          "svgIcon": "classify",
          "bg": "/icons/city.png",
          "sort": 3,
          "type": 1
        },
        "children": [
          {
            "id": "1401",
            "parentId": "14",
            "path": "/city/wf",
            "name": "wf",
            "component": "city/wf/index",
            "meta": {
              "title": "危废",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",

              "sort": 1,
              "type": 2
            },
            "children": null
          },
          {
            "id": "1402",
            "parentId": "14",
            "path": "/city/nowater",
            "name": "nowater",
            "component": "city/nowater/index",
            "meta": {
              "title": "无废细胞",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
          {
            "id": "1403",
            "parentId": "14",
            "path": "/city/wasteFreeCityIndicators",
            "name": "wasteFreeCityIndicators",
            "component": "city/wasteFreeCityIndicators/index",
            "meta": {
              "title": "无废城市指标",
              "hide": false,
              "disable": false,
              "keepAlive": true,
              "affix": false,
              "link": "",
              "iframe": false,
              "isFull": false,
              "roles": [
                "admin"
              ],
              "icon": "icon-menu",
              "sort": 2,
              "type": 2
            },
            "children": null
          },
        ]
      },

      //=================生态文化==============

      {
        "id": "15",
        "parentId": "0",
        "path": "/stedu",
        "name": "stedu",
        "component": "stedu/index",
        "meta": {
          "title": "生态文化",
          "hide": false,
          "disable": false,
          "keepAlive": false,
          "affix": true,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin",
            "common"
          ],
          "svgIcon": "classify",
          "bg": "/icons/icon-huanjingjiance.png",
          "icon": "",
          "sort": 1,
          "type": 2
        },
        "children": null
      },

      //=================一河一图一策==============
      {
        "id": "16",
        "parentId": "0",
        "path": "/river_Graph_Policy",
        "name": "river_Graph_Policy",
        "component": "river_Graph_Policy/index",
        "meta": {
          "title": "一河一图一策",
          "hide": false,
          "disable": false,
          "keepAlive": false,
          "affix": true,
          "link": "",
          "iframe": false,
          "isFull": false,
          "roles": [
            "admin",
            "common"
          ],
          "svgIcon": "classify",
          "bg": "/icons/icon-huanjingjiance.png",
          "icon": "",
          "sort": 1,
          "type": 2
        },
        "children": null
      },


      // {
      //   "id": "02",
      //   "parentId": "0",
      //   "path": "/file",
      //   "name": "file",
      //   "redirect": "/file/document-library",
      //   "meta": {
      //     "title": "file",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "folder-menu",
      //     "sort": 2,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0201",
      //       "parentId": "02",
      //       "path": "/file/document-library",
      //       "name": "document-library",
      //       "component": "file/document-library/document-library",
      //       "meta": {
      //         "title": "document-library",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "isFull": false,
      //         "link": "",
      //         "iframe": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "03",
      //   "parentId": "0",
      //   "path": "/table",
      //   "name": "table",
      //   "redirect": "/table/common-table",
      //   "meta": {
      //     "title": "table",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "table",
      //     "sort": 3,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0301",
      //       "parentId": "03",
      //       "path": "/table/common-table",
      //       "name": "common-table",
      //       "component": "table/common-table/common-table",
      //       "meta": {
      //         "title": "common-table",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0302",
      //       "parentId": "03",
      //       "path": "/table/custom-table",
      //       "name": "custom-table",
      //       "component": "table/custom-table/custom-table",
      //       "meta": {
      //         "title": "custom-table",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "04",
      //   "parentId": "0",
      //   "path": "/form",
      //   "name": "form",
      //   "redirect": "/form/common-form",
      //   "meta": {
      //     "title": "form",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "form",
      //     "sort": 4,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0401",
      //       "parentId": "04",
      //       "path": "/form/common-form",
      //       "name": "common-form",
      //       "component": "form/common-form/common-form",
      //       "meta": {
      //         "title": "common-form",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0402",
      //       "parentId": "04",
      //       "path": "/form/step-form",
      //       "name": "step-form",
      //       "component": "form/step-form/step-form",
      //       "meta": {
      //         "title": "step-form",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "05",
      //   "parentId": "0",
      //   "path": "/multilevel",
      //   "name": "multilevel",
      //   "redirect": "/multilevel/second-1",
      //   "meta": {
      //     "title": "multilevel",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "switch",
      //     "sort": 5,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0501",
      //       "parentId": "05",
      //       "path": "/multilevel/second-1",
      //       "name": "second-1",
      //       "component": "multilevel/second/second-1",
      //       "meta": {
      //         "title": "second-1",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0502",
      //       "parentId": "05",
      //       "path": "/multilevel/second-2",
      //       "name": "second-2",
      //       "redirect": "/multilevel/third-1",
      //       "meta": {
      //         "title": "second-2",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 1
      //       },
      //       "children": [
      //         {
      //           "id": "050202",
      //           "parentId": "0502",
      //           "path": "/multilevel/third-1",
      //           "name": "third-1",
      //           "component": "multilevel/third/third-1",
      //           "meta": {
      //             "title": "third-1",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 1,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "050201",
      //           "parentId": "0502",
      //           "path": "/multilevel/third-2",
      //           "name": "third-2",
      //           "component": "multilevel/third/third-2",
      //           "meta": {
      //             "title": "third-2",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 2,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "050203",
      //           "parentId": "0502",
      //           "path": "/multilevel/third-3",
      //           "name": "third-3",
      //           "component": "multilevel/third/third-3",
      //           "meta": {
      //             "title": "third-3",
      //             "link": "",
      //             "hide": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 3,
      //             "type": 2
      //           },
      //           "children": null
      //         }
      //       ]
      //     }
      //   ]
      // },
      // {
      //   "id": "06",
      //   "parentId": "0",
      //   "path": "/component",
      //   "name": "component",
      //   "redirect": "/component/player",
      //   "meta": {
      //     "title": "component",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "classify",
      //     "sort": 6,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0601",
      //       "parentId": "06",
      //       "path": "/component/player",
      //       "name": "player",
      //       "component": "component/player/player",
      //       "meta": {
      //         "title": "player",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0602",
      //       "parentId": "06",
      //       "path": "/component/print",
      //       "name": "print",
      //       "component": "component/print/print",
      //       "meta": {
      //         "title": "print",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0603",
      //       "parentId": "06",
      //       "path": "/component/draggable",
      //       "name": "draggable",
      //       "component": "component/draggable/draggable",
      //       "meta": {
      //         "title": "draggable",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 3,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0604",
      //       "parentId": "06",
      //       "path": "/component/editor",
      //       "name": "editor",
      //       "component": "component/editor/editor",
      //       "meta": {
      //         "title": "editor",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 4,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0605",
      //       "parentId": "06",
      //       "path": "/component/newbie",
      //       "name": "newbie",
      //       "component": "component/newbie/newbie",
      //       "meta": {
      //         "title": "newbie",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 5,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0606",
      //       "parentId": "06",
      //       "path": "/component/icon-selector",
      //       "name": "icon-selector",
      //       "component": "component/icon-selector/icon-selector",
      //       "meta": {
      //         "title": "icon-selector",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 6,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0607",
      //       "parentId": "06",
      //       "path": "/component/user-center",
      //       "name": "user-center",
      //       "component": "component/user-center/user-center",
      //       "meta": {
      //         "title": "user-center",
      //         "hide": true,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 7,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0608",
      //       "parentId": "06",
      //       "path": "/component/fingerprintjs2",
      //       "name": "fingerprintjs2",
      //       "component": "component/fingerprintjs2/fingerprintjs2",
      //       "meta": {
      //         "title": "fingerprintjs2",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 8,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0609",
      //       "parentId": "06",
      //       "path": "/component/barcode",
      //       "name": "barcode",
      //       "component": "component/barcode/barcode",
      //       "meta": {
      //         "title": "barcode",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 9,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0610",
      //       "parentId": "06",
      //       "path": "/component/qrcode",
      //       "name": "qrcode",
      //       "component": "component/qrcode/qrcode",
      //       "meta": {
      //         "title": "qrcode",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 10,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0611",
      //       "parentId": "06",
      //       "path": "/component/pinyin",
      //       "name": "pinyin",
      //       "component": "component/pinyin/pinyin",
      //       "meta": {
      //         "title": "pinyin",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 11,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0612",
      //       "parentId": "06",
      //       "path": "/component/recorder",
      //       "name": "recorder",
      //       "component": "component/recorder/recorder",
      //       "meta": {
      //         "title": "recorder",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 12,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0613",
      //       "parentId": "06",
      //       "path": "/component/virtual-list",
      //       "name": "virtual-list",
      //       "component": "component/virtual-list/index",
      //       "meta": {
      //         "title": "virtual-list",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 13,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0614",
      //       "parentId": "06",
      //       "path": "/component/common-layouts",
      //       "name": "common-layouts",
      //       "component": "component/common-layouts/index",
      //       "meta": {
      //         "title": "common-layouts",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 14,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "07",
      //   "parentId": "0",
      //   "path": "/directive",
      //   "name": "directive",
      //   "redirect": "/directive/anti-shake",
      //   "meta": {
      //     "title": "directive",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "directives",
      //     "sort": 7,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0701",
      //       "parentId": "07",
      //       "path": "/directive/anti-shake",
      //       "name": "anti-shake",
      //       "component": "directive/anti-shake/anti-shake",
      //       "meta": {
      //         "title": "anti-shake",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0702",
      //       "parentId": "07",
      //       "path": "/directive/throttle",
      //       "name": "throttle",
      //       "component": "directive/throttle/throttle",
      //       "meta": {
      //         "title": "throttle",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0703",
      //       "parentId": "07",
      //       "path": "/directive/test-directive",
      //       "name": "test-directive",
      //       "component": "directive/test-directive/test-directive",
      //       "meta": {
      //         "title": "test-directive",
      //         "hide": true,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 3,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "08",
      //   "parentId": "0",
      //   "path": "/personal",
      //   "name": "personal",
      //   "redirect": "/personal/userinfo",
      //   "meta": {
      //     "title": "personal",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "user",
      //     "sort": 8,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0801",
      //       "parentId": "08",
      //       "path": "/personal/userinfo",
      //       "name": "userinfo",
      //       "component": "personal/userinfo/userinfo",
      //       "meta": {
      //         "title": "userinfo",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0802",
      //       "parentId": "08",
      //       "path": "/personal/user-settings",
      //       "name": "user-settings",
      //       "component": "personal/user-settings/user-settings",
      //       "meta": {
      //         "title": "user-settings",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "09",
      //   "parentId": "0",
      //   "path": "/functions",
      //   "name": "functions",
      //   "redirect": "/functions/routing-operation",
      //   "meta": {
      //     "title": "functions",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "functions",
      //     "sort": 9,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "0901",
      //       "parentId": "09",
      //       "path": "/functions/routing-operation",
      //       "name": "routing-operation",
      //       "component": "functions/routing-operation/index",
      //       "meta": {
      //         "title": "routing-operation",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": [
      //         {
      //           "id": "090101",
      //           "parentId": "0901",
      //           "path": "/functions/routing-operation/common-route",
      //           "name": "common-route",
      //           "component": "functions/routing-operation/common-route",
      //           "meta": {
      //             "title": "common-route",
      //             "hide": true,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "svgIcon": "switch",
      //             "sort": 1,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "090102",
      //           "parentId": "0901",
      //           "path": "/functions/routing-operation/dynamic-route/:name/:text",
      //           "name": "dynamic-route",
      //           "component": "functions/routing-operation/dynamic-route",
      //           "meta": {
      //             "title": "dynamic-route",
      //             "hide": true,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "svgIcon": "switch",
      //             "sort": 2,
      //             "type": 2
      //           },
      //           "children": null
      //         }
      //       ]
      //     },
      //     {
      //       "id": "0902",
      //       "parentId": "09",
      //       "path": "/functions/common-tools",
      //       "name": "common-tools",
      //       "component": "functions/common-tools/common-tools",
      //       "meta": {
      //         "title": "common-tools",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0903",
      //       "parentId": "09",
      //       "path": "/functions/tree-tools",
      //       "name": "tree-tools",
      //       "component": "functions/tree-tools/tree-tools",
      //       "meta": {
      //         "title": "tree-tools",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 3,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0904",
      //       "parentId": "09",
      //       "path": "/functions/file-tools",
      //       "name": "file-tools",
      //       "component": "functions/file-tools/file-tools",
      //       "meta": {
      //         "title": "file-tools",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 4,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "0905",
      //       "parentId": "09",
      //       "path": "/functions/verify-tools",
      //       "name": "verify-tools",
      //       "component": "functions/verify-tools/verify-tools",
      //       "meta": {
      //         "title": "verify-tools",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 5,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "10",
      //   "parentId": "0",
      //   "path": "/system",
      //   "name": "system",
      //   "redirect": "/system/account",
      //   "meta": {
      //     "title": "system",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "set",
      //     "sort": 10,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "1001",
      //       "parentId": "10",
      //       "path": "/system/account",
      //       "name": "account",
      //       "component": "system/account/account",
      //       "meta": {
      //         "title": "account",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1002",
      //       "parentId": "10",
      //       "path": "/system/role",
      //       "name": "role",
      //       "component": "system/role/role",
      //       "meta": {
      //         "title": "role",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1003",
      //       "parentId": "10",
      //       "path": "/system/menu",
      //       "name": "menu",
      //       "component": "system/menu/menu",
      //       "meta": {
      //         "title": "menu",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 3,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1004",
      //       "parentId": "10",
      //       "path": "/system/division",
      //       "name": "division",
      //       "component": "system/division/division",
      //       "meta": {
      //         "title": "division",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 4,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1005",
      //       "parentId": "10",
      //       "path": "/system/dictionary",
      //       "name": "dictionary",
      //       "component": "system/dictionary/dictionary",
      //       "meta": {
      //         "title": "dictionary",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 5,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1006",
      //       "parentId": "10",
      //       "path": "/system/log",
      //       "name": "log",
      //       "component": "system/log/log",
      //       "meta": {
      //         "title": "log",
      //         "hide": true,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 6,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "12",
      //   "parentId": "0",
      //   "path": "/hide-menu",
      //   "name": "hide-menu",
      //   "component": "hide-menu/hide-menu",
      //   "meta": {
      //     "title": "hide-menu",
      //     "hide": true,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "switch",
      //     "sort": 12,
      //     "type": 2
      //   },
      //   "children": null
      // },
      // {
      //   "id": "13",
      //   "parentId": "0",
      //   "path": "/permission",
      //   "name": "permission",
      //   "redirect": "/permission/btn-perm",
      //   "meta": {
      //     "title": "permission",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin",
      //       "common"
      //     ],
      //     "svgIcon": "defend",
      //     "sort": 13,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "1301",
      //       "parentId": "13",
      //       "path": "/permission/btn-perm",
      //       "name": "btn-perm",
      //       "component": "permission/btn-perm/btn-perm",
      //       "meta": {
      //         "title": "btn-perm",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin",
      //           "common"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1302",
      //       "parentId": "13",
      //       "path": "/permission/admin-page",
      //       "name": "admin-page",
      //       "component": "permission/admin-page/admin-page",
      //       "meta": {
      //         "title": "admin-page",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1303",
      //       "parentId": "13",
      //       "path": "/permission/common-page",
      //       "name": "common-page",
      //       "component": "permission/common-page/common-page",
      //       "meta": {
      //         "title": "common-page",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "common"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 3,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "14",
      //   "parentId": "0",
      //   "path": "/link",
      //   "name": "link",
      //   "redirect": "/link/internal",
      //   "meta": {
      //     "title": "link",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "link",
      //     "sort": 14,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "1401",
      //       "parentId": "14",
      //       "path": "/link/internal",
      //       "name": "internal",
      //       "redirect": "/link/internal/uigradients",
      //       "meta": {
      //         "title": "internal",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 1
      //       },
      //       "children": [
      //         {
      //           "id": "140101",
      //           "parentId": "1401",
      //           "path": "/link/internal/uigradients",
      //           "name": "uigradients",
      //           "component": "link/internal/internal",
      //           "meta": {
      //             "title": "uigradients",
      //             "hide": false,
      //             "keepAlive": true,
      //             "disable": false,
      //             "affix": false,
      //             "link": "https://uigradients.com/#HoneyDew",
      //             "iframe": true,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 1,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "140102",
      //           "parentId": "1401",
      //           "path": "/link/internal/color-taking-tool",
      //           "name": "color-taking-tool",
      //           "component": "link/internal/internal",
      //           "meta": {
      //             "title": "color-taking-tool",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "https://photokit.com/colors/eyedropper/?lang=zh",
      //             "iframe": true,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 2,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "140103",
      //           "parentId": "1401",
      //           "path": "/link/internal/grid-generator",
      //           "name": "grid-generator",
      //           "component": "link/internal/internal",
      //           "meta": {
      //             "title": "grid-generator",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "https://cssgrid-generator.netlify.app/",
      //             "iframe": true,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 3,
      //             "type": 2
      //           },
      //           "children": null
      //         }
      //       ]
      //     },
      //     {
      //       "id": "1402",
      //       "parentId": "14",
      //       "path": "/link/external",
      //       "name": "external",
      //       "redirect": "/link/external/link-vue",
      //       "meta": {
      //         "title": "external",
      //         "hide": false,
      //         "disable": false,
      //         "keepAlive": true,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 1
      //       },
      //       "children": [
      //         {
      //           "id": "140202",
      //           "parentId": "1402",
      //           "path": "/link/external/vue",
      //           "name": "vue",
      //           "component": "link/external/external",
      //           "meta": {
      //             "title": "vue",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "https://cn.vuejs.org/",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 1,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "140203",
      //           "parentId": "1402",
      //           "path": "/link/external/vite",
      //           "name": "vite",
      //           "component": "link/external/external",
      //           "meta": {
      //             "title": "vite",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "https://www.vitejs.net/",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 2,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "140205",
      //           "parentId": "1402",
      //           "path": "/link/external/juejin",
      //           "name": "juejin",
      //           "component": "link/external/external",
      //           "meta": {
      //             "title": "juejin",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "https://juejin.cn/user/1728883023940600",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 4,
      //             "type": 2
      //           },
      //           "children": null
      //         },
      //         {
      //           "id": "140201",
      //           "parentId": "1402",
      //           "path": "/link/external/SnowAdmin-Docs",
      //           "name": "SnowAdmin-Docs",
      //           "component": "link/external/external",
      //           "meta": {
      //             "title": "SnowAdmin-Docs",
      //             "hide": false,
      //             "disable": false,
      //             "keepAlive": true,
      //             "affix": false,
      //             "link": "http://115.190.79.132:81/",
      //             "iframe": false,
      //             "isFull": false,
      //             "roles": [
      //               "admin"
      //             ],
      //             "icon": "icon-menu",
      //             "sort": 5,
      //             "type": 2
      //           },
      //           "children": null
      //         }
      //       ]
      //     }
      //   ]
      // },
      // {
      //   "id": "15",
      //   "parentId": "0",
      //   "path": "/monitor",
      //   "name": "monitor",
      //   "redirect": "/monitor/onlineuser",
      //   "meta": {
      //     "title": "system-monitor",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "financial-statement",
      //     "sort": 15,
      //     "type": 1
      //   },
      //   "children": [
      //     {
      //       "id": "1501",
      //       "parentId": "15",
      //       "path": "/monitor/onlineuser",
      //       "name": "onlineuser",
      //       "component": "monitor/onlineuser/index",
      //       "meta": {
      //         "title": "onlineuser",
      //         "hide": false,
      //         "keepAlive": true,
      //         "disable": false,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 1,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1502",
      //       "parentId": "15",
      //       "path": "/monitor/crontab",
      //       "name": "crontab",
      //       "component": "monitor/crontab/index",
      //       "meta": {
      //         "title": "crontab",
      //         "hide": false,
      //         "keepAlive": true,
      //         "disable": false,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 2,
      //         "type": 2
      //       },
      //       "children": null
      //     },
      //     {
      //       "id": "1503",
      //       "parentId": "15",
      //       "path": "/monitor/crontab-logs",
      //       "name": "crontab-logs",
      //       "component": "monitor/crontab-logs/index",
      //       "meta": {
      //         "title": "crontab-logs",
      //         "hide": false,
      //         "keepAlive": true,
      //         "disable": false,
      //         "affix": false,
      //         "link": "",
      //         "iframe": false,
      //         "isFull": false,
      //         "roles": [
      //           "admin"
      //         ],
      //         "icon": "icon-menu",
      //         "sort": 3,
      //         "type": 2
      //       },
      //       "children": null
      //     }
      //   ]
      // },
      // {
      //   "id": "16",
      //   "parentId": "0",
      //   "path": "/gaodemap",
      //   "name": "gaodemap",
      //   "component": "link/internal/internal",
      //   "meta": {
      //     "title": "amap",
      //     "hide": false,
      //     "keepAlive": true,
      //     "disable": false,
      //     "affix": false,
      //     "link": "http://115.190.79.132:82/",
      //     "iframe": true,
      //     "isFull": false,
      //     "roles": [
      //       "admin"
      //     ],
      //     "svgIcon": "amap",
      //     "sort": 16,
      //     "type": 2
      //   },
      //   "children": null
      // },
      // {
      //   "id": "17",
      //   "parentId": "0",
      //   "path": "/i18n",
      //   "name": "i18n",
      //   "component": "i18n/show/index",
      //   "meta": {
      //     "title": "i18n",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin",
      //       "common"
      //     ],
      //     "svgIcon": "earth",
      //     "sort": 17,
      //     "type": 2
      //   },
      //   "children": null
      // },
      // {
      //   "id": "18",
      //   "parentId": "0",
      //   "path": "/about",
      //   "name": "about",
      //   "component": "about/about",
      //   "meta": {
      //     "title": "about",
      //     "hide": false,
      //     "disable": false,
      //     "keepAlive": true,
      //     "affix": false,
      //     "link": "",
      //     "iframe": false,
      //     "isFull": false,
      //     "roles": [
      //       "admin",
      //       "common"
      //     ],
      //     "svgIcon": "about",
      //     "sort": 18,
      //     "type": 2
      //   },
      //   "children": null
      // }
    ]
    // 1、获取过滤角色权限后的树，后端做排序处理
    // let { data } = await getRoutersAPI();
    console.log(routesArrData)
    // 2、获取路由树转换的一维路由
    let flatRoute = linearArray(routesArrData);
    // 3、将模块设置为真实模块
    let realTree = await moduleReplacement(flatRoute);
    // 4、动态添加路由
    realTree.forEach((route: any) => {
      if (route.meta.isFull) {
        router.addRoute(route);
      } else {
        router.addRoute("layout", route);
      }
    });
    // 5、存储路由树，用于生成菜单
    routeTree.value = routesArrData;
    // 6、缓存一维路由
    routeList.value = flatRoute;
  }

  return {
    routeTree,
    routeList,
    cacheRoutes,
    tabsList,
    currentRoute,
    setTabsTitle,
    setRoutePaths,
    setTabs,
    setCurrentRoute,
    removeTabsList,
    removeRouteName,
    removeRoutePaths,
    resetRoute,
    initSetRouter
  };
};

export const useRoutesConfigStore = defineStore("route-config", routesConfigStore);
